package com.zoweunion.mechanic.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.zoweunion.mechanic.entity.*;
import com.zoweunion.mechanic.util.MyException;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

/**
 * 车类型号
 *
 * @author xp
 * @email 17688825585@163.com
 * @date 2020-05-25 20:08:39
 */
public interface TSSsVehicleModelService extends IService<TSSsVehicleModelEntity>{

    PageInfo<TSSsVehicleModelEntity> queryPage(Map<String, Object> map);

    PageInfo<TSSsVehicleModelEntity> tSSsVehicleModelListFor(Map<String, Object> params);

    List<Map<String, Object>> test();

    List<Map<String, Object>> testZt();

    Map<String, Object> workSumHead(Map<String, Object> params);

    List<Map<String, Object>> modelPercent(Map<String, Object> params);

    /**
     * 故障排行
     */
    List<Map<String, Object>> spnOrder(Map<String, Object> params);

    /**
     * 工时油耗统计
     */
    Map<String, Object> workFuel(Map<String, Object> params);


    List<Map<String, Object>> workByPro(Map<String, Object> params);

    List<Map<String, Object>> modelList(Map<String, Object> params);

    List<Map<String, Object>> onlineCurrentList(Map<String, Object> params);

    List<Map<String, Object>> provinceList(Map<String, Object> params);

    Map<String, Object> idlingPercent(Map<String, Object> params);

    Map<String, Object> faultListNew(Map<String, Object> params);

    List<Map<String, Object>> workingFuelNew(Map<String, Object> params);


    Map<String, Object> mapCount(Map<String, Object> params);

    Map<String, Object> mapListNew(Map<String, Object> params);

    Map<String, Object> mapInfoNew(Map<String, Object> params);

    /**
     * 车主名下车辆的使用小时数排名
     * @param params
     * @return
     */
    PageInfo tSSsCarOwnerRang(Map<String, Object> params);

    /**
     * 车主名下车辆的使用小时数排名
     * @param params
     * @return
     */
    PageInfo tSSsCarOwnerRang2(Map<String, Object> params);

    /**
     * 车辆的使用小时数排名
     * @param params
     * @return
     */
    List<Map<String, Object>> tSSsCarRang(Map<String, Object> params);

    /**
     * 导出车主（车主名下车辆的使用小时数)排名的数据
     * @param params
     * @return
     */
    List<CarOwnerRangDataBean> exportTSSsCarOwnerRangData(Map<String, Object> params);

    /**
     * 有账期的车辆的车主的开机率排名
     * @param params
     * @return
     */
    PageInfo tSSsCarOwnerForWorkPerRang(Map<String, Object> params) throws MyException, ParseException;

    /**
     * 有账期的某车主下车辆的开机率排名
     * @param params
     * @return
     */
    List<Map<String, Object>> tSSsCarRangForWorkPerRang(Map<String, Object> params) throws ParseException;

    /**
     * 工时统计-2022年4月6日09:43:12
     * @param params
     * @return
     */
    PageInfo carOwnerEngineTotalHours(Map<String, Object> params) throws MyException, ParseException;

    /**
     * 工时统计-24H-导出表格-2022年5月07日16:44
     */
    List<CarOwnerEngineTotalHoursDataBean> exportCarOwnerEngineTotalHours(Map<String, Object> paramsMap);

    /**
     * 工时统计-新导出，分开始时间和结束时间
     */
    List<CarOwnerEngineTotalHoursDataBeanNew> exportCarOwnerEngineTotalHoursNew(Map<String, Object> paramsMap);

    /**
     * 工时统计-新导出，分开始时间和结束时间
     */
//    List<CarOwnerEngineFuelConsumptionDataBean> exportCarOwnerEngineFuelConsumptionAnalysisNew(Map<String, Object> paramsMap);

    List<Map<String, Object>> exportCarOwnerEngineFuelConsumptionAnalysisOfMonth(Map<String, Object> params);

    List<DynamicColumBean> getDynamicColumOfFuelAnalysisMonthBean(Map<String, Object> params);

    /**
     * 工时统计-24H-导出表格-转换时间方法-2022年5月07日16:44
     */
    String conversionDate(double params, String date);

    /**
     * 工时统计-按日统计-2022年4月9日14:36:33
     */
    PageInfo carOwnerEngineTotalHoursOfDay(Map<String, Object> params) throws MyException, ParseException;

    /**
     * 工时统计-按日统计-2022年4月9日14:36:33
     */
    PageInfo carOwnerEngineTotalHoursBetweenDay(Map<String, Object> params) throws MyException, ParseException;


    /**
     * 工时统计-车主名称列表
     */
    List<Map<String, Object>> usernameList(Map<String, Object> params) throws MyException, ParseException;

    /**
     * 工时统计-车设备列表
     */
    List<Map<String, Object>> bdCarList(Map<String, Object> params) throws MyException, ParseException;

    /**
     * 工时统计-按天-导出表格-2022年5月10日13:44
     */
    List<Map<String, Object>>  exportCarOwnerEngineTotalHoursOfDay(Map<String, Object> params);

    /**
     * 工时统计-按天-导出表格-获取动态字段-2022年5月10日13:44
     */
    List<DynamicColumBean> getDynamicColumBean(Map<String, Object> params);

    /**
     * 工时统计-按周统计-2022年4月12日14:36:33
     */
    PageInfo carOwnerEngineTotalHoursOfWeek(Map<String,Object> params) throws MyException, ParseException;

    /**
     * 工时统计-按周-导出表格-2022年5月10日13:44
     */
    List<Map<String, Object>> exportCarOwnerEngineTotalHoursOfWeek(Map<String, Object> params);

    /**
     * 工时统计-按周-导出表格-获取动态字段-2022年5月10日13:44
     */
    List<DynamicColumBean> getDynamicColumOfWeekBean(Map<String, Object> params);

    /**
     * 工时统计-按月统计-2022年4月15日08:56
     */
    PageInfo carOwnerEngineTotalHoursOfMonth(Map<String,Object> params) throws MyException, ParseException;

    /**
     * 工时统计-按月-导出表格-2022年5月10日13:44
     */
    List<Map<String, Object>> exportCarOwnerEngineTotalHoursOfMonth(Map<String, Object> params);

    /**
     * 工时统计-按月-导出表格-获取动态字段-2022年5月10日13:44
     */
    List<DynamicColumBean> getDynamicColumOfMonthBean(Map<String, Object> params);

    /**
     * 工时统计-按日or周or月统计-总工时-2022年4月18日13:50
     */
    String carOwnerEngineGetTotalHours(Map<String, Object> params) throws MyException, ParseException;

    /**
     * 工时统计-按日or周or月统计-总工时-拆分车主和设备名称的搜索条件
     */
    String carOwnerEngineGetTotalHoursNew(Map<String, Object> params) throws MyException, ParseException;

    /**
     * 工时统计-按日or周or月统计-总工时-拆分车主和设备名称的搜索条件
     */
    String carOwnerEngineGetTotalDays(Map<String, Object> params) throws MyException, ParseException;

    /**
     * 工时统计-按24H统计-总工时-2022年4月18日15:27
     */
    String carOwnerEngineGetTotalHoursOf24H(Map<String, Object> params) throws MyException, ParseException;

    /**
     * 油耗报表-加油统计-按天-2022年4月19日10:27
     */
    PageInfo carOwnerEngineTotalFuelConsumptionOfDay(Map<String, Object> params) throws MyException, ParseException;

    /**
     * 油耗报表-加油统计-按天-导出表格-2022年5月11日09:20
     */
    List<Map<String, Object>> exportCarOwnerEngineTotalFuelConsumptionOfDay(Map<String, Object> params);

    /**
     * 油耗报表-加油统计-按天-导出表格-获取动态字段-2022年5月11日09:20
     */
    List<DynamicColumBean> getDynamicColumOfFuelDayBean(Map<String, Object> params);

    /**
     * 油耗报表-加油统计-按周-2022年4月19日14:19
     */
    PageInfo carOwnerEngineTotalFuelConsumptionOfWeek(Map<String, Object> params) throws MyException, ParseException;

    /**
     * 油耗报表-加油统计-按周-导出表格-2022年5月11日09:38
     */
    List<Map<String, Object>> exportCarOwnerEngineTotalFuelConsumptionOfWeek(Map<String, Object> params);

    /**
     * 油耗报表-加油统计-按周-导出表格-获取动态字段-2022年5月11日09:38
     */
    List<DynamicColumBean> getDynamicColumOfFuelWeekBean(Map<String, Object> params);

    /**
     * 油耗报表-加油统计-按月-2022年4月19日14:19
     */
    PageInfo carOwnerEngineTotalFuelConsumptionOfMonth(Map<String, Object> params) throws MyException, ParseException;

    /**
     * 油耗报表-加油统计-按月-导出表格-2022年5月11日15:53
     */
    List<Map<String, Object>> exportCarOwnerEngineTotalFuelConsumptionOfMonth(Map<String, Object> params);

    /**
     * 油耗报表-加油统计-按月-导出表格-获取动态字段-2022年5月11日15:53
     */
    List<DynamicColumBean> getDynamicColumOfFuelMonthBean(Map<String, Object> params);

    /**
     * 油耗报表-加油统计-按天or周or月时间段内所有车辆的加油量总和-2022年4月19日14:21
     */
    String carOwnerEngineGetTotalFuelConsumption(Map<String, Object> params) throws MyException, ParseException;

    /**
     * 油耗报表-加油统计-按天or周or月时间段内所有车辆的加油量总和-2022年4月19日14:21
     */
    String carOwnerEngineGetTotalFuelConsumptionNew(Map<String, Object> params) throws MyException, ParseException;

    Double carOwnerEngineFuelConsumptionAnalysisBetweenDaysum(Map<String, Object> params) throws MyException, ParseException;

    /**
     * 油耗报表-设备油耗分析-按天-2022年4月20日16:07
     */
    PageInfo carOwnerEngineFuelConsumptionAnalysisOfDay(Map<String, Object> params) throws MyException, ParseException;

    /**
     * 油耗报表-设备油耗分析-按天-2022年4月20日16:07
     */
    PageInfo carOwnerEngineFuelConsumptionAnalysisBetweenDay(Map<String, Object> params) throws MyException, ParseException;

    /**
     * 油耗报表-设备油耗分析-按天-导出表格-2022年5月11日16:07
     */
    List<Map<String, Object>> exportCarOwnerEngineFuelConsumptionAnalysisOfDay(Map<String, Object> params);


    /**
     * 油耗报表-设备油耗分析-按天-导出表格-2022年5月11日16:07
     */
    List<Map<String, Object>> exportCarOwnerEngineFuelConsumptionAnalysisBetweenDay(Map<String, Object> params);

    /**
     * 油耗报表-设备油耗分析-按天-获取动态字段-2022年5月11日16:07
     */
    List<DynamicColumBean> getDynamicColumOfFuelAnalysisDayBean(Map<String, Object> params);

    /**
     * 油耗报表-设备油耗分析-按天-获取动态字段-2022年5月11日16:07
     */
    List<DynamicColumBean> getColumOfFuelAnalysisDayBean(Map<String, Object> params);

    /**
     * 油耗报表-设备油耗分析-按周-2022年4月20日16:38
     */
    PageInfo carOwnerEngineFuelConsumptionAnalysisOfWeek(Map<String, Object> params) throws MyException, ParseException;

    /**
     * 油耗报表-设备油耗分析-按周-导出表格-2022年5月11日15:55
     */
    List<Map<String, Object>> exportCarOwnerEngineFuelConsumptionAnalysisOfWeek(Map<String, Object> params);

    /**
     * 油耗报表-设备油耗分析-按周-获取动态字段-2022年5月11日15:55
     */
    List<DynamicColumBean> getDynamicColumOfFuelAnalysisWeekBean(Map<String, Object> params);

    /**
     * 油耗报表-设备油耗分析-按月-2022年4月20日16:44
     */
    PageInfo carOwnerEngineFuelConsumptionAnalysisOfMonth(Map<String, Object> params) throws MyException, ParseException;


    PageInfo equipmentReportByDay(Map<String, Object> paramsMap);
}

